home *** CD-ROM | disk | FTP | other *** search
- NOTE ML0440 - ADD AND REMOVE CODES FROM THE CODES FIELD FROM SELECTED RECORDS 9/23/84
- DO ML0442
- SELECT PRIMARY
- USE &FDEV
- STORE ',,' TO VAR
- STORE 17 TO OFSET
- STORE LEN(CODES) TO MAX
- STORE ',' TO DELIM
- @ 14,0 SAY ' NOTE: This routine does NOT check and may insert the duplicate of a code.'
- @ 15,0 SAY 'Enter Code Values to ADD to Codes Field of Selected Records.'
- DO ML0010
- STORE $(VAR,2, LEN(VAR)-1 ) TO AC
- STORE VAR#',,' TO ADD
- STORE MAX-LEN(AC) TO ACL
- @ 14,0
- @ 15,0 SAY 'Enter Code Values to DELETE from Codes Field of Selected Records.'
- STORE ',,' TO VAR
- DO ML0010A
-
- IF .NOT.ADD .AND. V=0
- @ 15,0
- @ 15,0 SAY 'NO Code Information Entered. Returning to Menu. Press any Key to Continue.'
- WAIT
- DO ML0441
- RETURN
- ENDIF
-
- IF OPT=1
- DO ML0201
- ENDIF
- IF OPT=2
- DO ML0202
- ENDIF
- IF OPT=3
- SAVE TO ML0440
- RELEASE ALL
- DO ML0203
- RESTORE FROM ML0440
- IF .NOT.FILE('MLSUB1.DBF')
- DO ML0441
- RETURN
- ENDIF
- ENDIF
-
- SELECT PRIMARY
- USE MLSUB1
- GOTO BOTTOM
- ?
- ? #
- ?? ' RECORDS SELECTED.'
-
- IF #=0
- ?
- ? 'NO Records Selected for Update. Press Any Key to Continue.'
- DO ML0441
- WAIT
- RETURN
- ENDIF
-
- ?
- ACCEPT 'Do you wish to continue? (Y/N) ' TO RESP
- IF !(RESP)='N'
- DO ML0441
- RETURN
- ENDIF
- SELECT SECONDARY
- USE &FDEV INDEX &FDEV
- SELECT PRIMARY
- GOTO TOP
- ERASE
- @ 10,10 SAY 'Update Mailing List File for ADD/DELETE Codes.'
- @ 14,10 SAY ' 0 Selected Records Processed.'
- STORE 0 TO NOUP
-
- DO WHILE .NOT.EOF
- STORE STR(RECID,4) TO KEY
- SELECT SECONDARY
- FIND &KEY
- IF #>0
- STORE TRIM(CODES) TO VAR
- STORE LEN(VAR) TO L
- STORE 0 TO N
-
- DO WHILE N<V .AND. VAR#',,'
- STORE N+1 TO N
- STORE STR(N,1+INT(N/10) ) TO VC
- STORE @( CD&VC ,VAR) TO P
- STORE L&VC TO R
-
- DO CASE
- CASE P>1 .AND. R+P-1<L
- STORE $(VAR,1,P)+$(VAR, P+R, L-R-P+1) TO VAR
- CASE P=1 .AND. R<L
- STORE $(VAR,R,L-R+1) TO VAR
- CASE P>1 .AND. R+P-1=L
- STORE $(VAR,1,P) TO VAR
- CASE P=1 .AND. R=L
- STORE ',,' TO VAR
- ENDCASE
- IF P>0
- STORE L-R+1 TO L
- ENDIF
- ENDDO
-
- IF ADD.AND. L<ACL
- IF VAR=',,'
- REPLACE CODES WITH DELIM+AC
- ELSE
- REPLACE CODES WITH VAR+AC
- ENDIF
- STORE T TO OK
- ELSE
- STORE .NOT.ADD TO OK
- IF .NOT.OK
- STORE NOUP+1 TO NOUP
- ENDIF
- ENDIF
- ELSE
- STORE F TO OK
- STORE NOUP+1 TO NOUP
- ENDIF {#>0}
- SELECT PRIMARY
- REPLACE CP WITH OK
- @ 14,10 SAY # USING '9999'
- SKIP
- ENDDO
-
- IF NOUP>0
- ERASE
- @ 10,10 SAY 'Unable to Update Mailing List Records with Code Data.'
- @ 12,10 SAY 'Turn on Printer. Report to Follow. Press any Key when Printer Ready.'
- WAIT
- SET CONSOLE OFF
- REPORT FORM ML0440 FOR .NOT.CP TO PRINT
- SET CONSOLE ON
- ENDIF
- DO ML0441
- RETURN
- NSOLE OFF
- REPORT FORM ML0440 FOR .NOT.CP TO PRINT
- SET CONSOLE ON
- ENDIF
- DO ML0441
- RETURN